home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu450.dms / pu450.adf / doc / KnownBugs < prev    next >
Text File  |  2014-06-18  |  3KB  |  87 lines

  1.  
  2. knownbugs/knownbugs                        knownbugs/knownbugs
  3. knownbugs/KnownBugs                        knownbugs/KnownBugs
  4.  
  5.  
  6.     NOT IMPLEMENTED IN UNREGISTERED RELEASE BUT IMPLEMENTED IN REGISTERED
  7.     RELEASE:
  8.  
  9.     * bit fields
  10.     * floating point
  11.     * manual pages for DICE libraries
  12.     * keywords:    __chip, __far, __near
  13.  
  14.  
  15.     PREPROCESSOR:
  16.  
  17.     (1) string-ize operator (#) does not escape contents (e.g. if there is
  18.         a quote or a backslash in the string, it is not escaped)
  19.  
  20.     (2) token-pasting operator (##) resolves the paste last instead of
  21.         first.  Thus, the pasted operator may not be used to represent
  22.         other macros.
  23.  
  24.     MAIN COMPILER:
  25.  
  26.     extern void (*signal(int, void (*)(int)))(int);     doesn't work...
  27.     DCC improperly parses complex procedure pointer types.    You have
  28.     to use typedef's to generate complex procedural types.
  29.  
  30.     bit fields have only been partially implemented, things like
  31.     a += b; where a is a bit field do not work and comparisons
  32.     only work == 0 or != 0.
  33.  
  34.     Structural return values have not been implemented yet
  35.  
  36.     Auto-Initialization of auto arrays / structures.  I.E.
  37.     stack aggregate initialization of arrays and structures is not
  38.     implemented yet (a new ANSI thing)
  39.  
  40.     LIBRARY ROUTINES
  41.  
  42.     standard qsort() not implemented yet
  43.  
  44.     *scanf() routines do not understand %[...] form or %e,E,f,g (fp forms)
  45.  
  46.     time routines ignore daylight savings time.
  47.  
  48.     FLOATING POINT
  49.  
  50.     Not all fp library calls have been implemented yet.
  51.  
  52.     FLOAT -> DOUBLE -> FLOAT CONVERSION IS UNSTABLE!!!!  The best thing to
  53.     do for now is to use only double's.  If you want to use the float
  54.     type you must make sure that no constructions convert items to double
  55.     and then back to float.  This means
  56.  
  57.         * cast all fp constants to float
  58.  
  59.         * prototype all functions that take a float.  Otherwise said
  60.           functions will expect a double no matter what you specify for
  61.           the argument type.
  62.  
  63.         * use float math library routines such as fsin() instead of sin().
  64.           Look at dinclude:Math.h for more information.
  65.  
  66.     EXAMPLE:
  67.  
  68.         /* if this function is not prototyped */
  69.         float
  70.         fubar(x, y)
  71.         float x, y;     <- than these are really doubles
  72.         {
  73.         }
  74.  
  75.         float a, b, c, d;
  76.  
  77.         d = b * b - 4.0 * a * c;        WRONG
  78.         d = b * b - (float)4.0 * a * c;     RIGHT
  79.  
  80.         Dice will perform nominal arithmatic if both arguments are floats
  81.         using floats.  But if one argument is a double (like the fp
  82.         constant), then the other will be cast to a double to run the
  83.         operation and the result cast back to a float.  This is unstable
  84.         currently due to the fact that I am using FFP's for floats and
  85.         IEEE's for doubles.
  86.  
  87.